package com.example;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

// 使用 @Component 注解将 User 类标记为 Spring 组件，以便 Spring 容器进行管理
@Component("User")
// 使用 @PropertySource 注解指定要加载的属性文件，classpath 表示从类路径下加载
@PropertySource("classpath:姓名拼音.properties")
public class User {
    // 使用 @Value 注解从属性文件中读取 user.id 的值并注入到 id 属性中
    @Value("${user.id}")
    private int id;

    // 使用 @Value 注解从属性文件中读取 user.name 的值并注入到 name 属性中
    @Value("${user.name}")
    private String name;

    // 使用 @Value 注解从属性文件中读取 user.password 的值并注入到 password 属性中
    @Value("${user.password}")
    private String password;

    // 无参构造函数
    public User() {
    }

    // 有参构造函数，方便创建对象时初始化属性
    public User(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }

    // Getter 和 Setter 方法，用于获取和设置属性值
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    // 重写 toString 方法，方便打印对象信息
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
